<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>hdcp22_common: bigdigits.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">hdcp22_common
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('bigdigits_8h.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">bigdigits.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>Interface to core BigDigits "mp" functions using fixed-length arrays. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ab56c606f91a4f8d105bbf3bbe0640b6c"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a></td></tr>
<tr class="memdesc:ab56c606f91a4f8d105bbf3bbe0640b6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The basic BigDigit element, an unsigned 32-bit integer.  <a href="#ab56c606f91a4f8d105bbf3bbe0640b6c">More...</a><br /></td></tr>
<tr class="separator:ab56c606f91a4f8d105bbf3bbe0640b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a46b2df2b78b1c6058407f4a42d9bc352"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a46b2df2b78b1c6058407f4a42d9bc352">mpAdd</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> v[], size_t ndigits)</td></tr>
<tr class="memdesc:a46b2df2b78b1c6058407f4a42d9bc352"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes w = u + v, returns carry.  <a href="#a46b2df2b78b1c6058407f4a42d9bc352">More...</a><br /></td></tr>
<tr class="separator:a46b2df2b78b1c6058407f4a42d9bc352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab62d5d5b7964485ecb262371c1f50b4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ab62d5d5b7964485ecb262371c1f50b4c">mpSubtract</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> v[], size_t ndigits)</td></tr>
<tr class="memdesc:ab62d5d5b7964485ecb262371c1f50b4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes w = u - v, returns borrow.  <a href="#ab62d5d5b7964485ecb262371c1f50b4c">More...</a><br /></td></tr>
<tr class="separator:ab62d5d5b7964485ecb262371c1f50b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7722e651a813d81c395293d956ee0aad"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a7722e651a813d81c395293d956ee0aad">mpMultiply</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> v[], size_t ndigits)</td></tr>
<tr class="memdesc:a7722e651a813d81c395293d956ee0aad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes product w = u * v.  <a href="#a7722e651a813d81c395293d956ee0aad">More...</a><br /></td></tr>
<tr class="separator:a7722e651a813d81c395293d956ee0aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef30a26e38c65986ce0b058c2fb1990b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> q[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> r[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], size_t udigits, <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> v[], size_t vdigits)</td></tr>
<tr class="memdesc:aef30a26e38c65986ce0b058c2fb1990b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes integer division of u by v such that u=qv+r.  <a href="#aef30a26e38c65986ce0b058c2fb1990b">More...</a><br /></td></tr>
<tr class="separator:aef30a26e38c65986ce0b058c2fb1990b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa74ecdc3660423f2f3f7973ecef6e0e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#afa74ecdc3660423f2f3f7973ecef6e0e">mpModulo</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> r[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], size_t udigits, <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> v[], size_t vdigits)</td></tr>
<tr class="memdesc:afa74ecdc3660423f2f3f7973ecef6e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes remainder r = u mod v.  <a href="#afa74ecdc3660423f2f3f7973ecef6e0e">More...</a><br /></td></tr>
<tr class="separator:afa74ecdc3660423f2f3f7973ecef6e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8426b0575d2fcd0008306ca3e2aed7a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ad8426b0575d2fcd0008306ca3e2aed7a">mpSquare</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], size_t ndigits)</td></tr>
<tr class="memdesc:ad8426b0575d2fcd0008306ca3e2aed7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes square w = x^2.  <a href="#ad8426b0575d2fcd0008306ca3e2aed7a">More...</a><br /></td></tr>
<tr class="separator:ad8426b0575d2fcd0008306ca3e2aed7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa29bf074672994682723540c20155ccf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> s[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], size_t ndigits)</td></tr>
<tr class="memdesc:aa29bf074672994682723540c20155ccf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes integer square root s = floor(sqrt(x))  <a href="#aa29bf074672994682723540c20155ccf">More...</a><br /></td></tr>
<tr class="separator:aa29bf074672994682723540c20155ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af06b4d31d69a7b81da3aaa144a6d49fb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> s[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], size_t ndigits)</td></tr>
<tr class="memdesc:af06b4d31d69a7b81da3aaa144a6d49fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes integer cube root s = floor(cuberoot(x))  <a href="#af06b4d31d69a7b81da3aaa144a6d49fb">More...</a><br /></td></tr>
<tr class="separator:af06b4d31d69a7b81da3aaa144a6d49fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ff4d09455d3bc0be1c3597124e20073"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a8ff4d09455d3bc0be1c3597124e20073">mpEqual</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t ndigits)</td></tr>
<tr class="memdesc:a8ff4d09455d3bc0be1c3597124e20073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a == b, else false, using constant-time algorithm.  <a href="#a8ff4d09455d3bc0be1c3597124e20073">More...</a><br /></td></tr>
<tr class="separator:a8ff4d09455d3bc0be1c3597124e20073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4246d9127540532315d570f7c8424a40"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a4246d9127540532315d570f7c8424a40">mpCompare</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t ndigits)</td></tr>
<tr class="memdesc:a4246d9127540532315d570f7c8424a40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sign of <code>(a-b)</code> as <code>{-1,0,+1}</code> using constant-time algorithm.  <a href="#a4246d9127540532315d570f7c8424a40">More...</a><br /></td></tr>
<tr class="separator:a4246d9127540532315d570f7c8424a40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af21aed296a2a54c5af0ba717bc1b87f3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#af21aed296a2a54c5af0ba717bc1b87f3">mpIsZero</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits)</td></tr>
<tr class="memdesc:af21aed296a2a54c5af0ba717bc1b87f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a is zero, else false, using constant-time algorithm.  <a href="#af21aed296a2a54c5af0ba717bc1b87f3">More...</a><br /></td></tr>
<tr class="separator:af21aed296a2a54c5af0ba717bc1b87f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0075ded2e08296e00c7d0d8236baa9e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ae0075ded2e08296e00c7d0d8236baa9e">mpEqual_q</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t ndigits)</td></tr>
<tr class="memdesc:ae0075ded2e08296e00c7d0d8236baa9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a == b, else false (quick)  <a href="#ae0075ded2e08296e00c7d0d8236baa9e">More...</a><br /></td></tr>
<tr class="separator:ae0075ded2e08296e00c7d0d8236baa9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac32b90400c290ae7164682784db0cf72"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac32b90400c290ae7164682784db0cf72">mpCompare_q</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t ndigits)</td></tr>
<tr class="memdesc:ac32b90400c290ae7164682784db0cf72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sign of <code>(a-b)</code> as <code>{-1,0,+1}</code> (quick)  <a href="#ac32b90400c290ae7164682784db0cf72">More...</a><br /></td></tr>
<tr class="separator:ac32b90400c290ae7164682784db0cf72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6ea424f6e1f6c2ca3a1af8fbe4455fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#af6ea424f6e1f6c2ca3a1af8fbe4455fe">mpIsZero_q</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits)</td></tr>
<tr class="memdesc:af6ea424f6e1f6c2ca3a1af8fbe4455fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a is zero, else false (quick)  <a href="#af6ea424f6e1f6c2ca3a1af8fbe4455fe">More...</a><br /></td></tr>
<tr class="separator:af6ea424f6e1f6c2ca3a1af8fbe4455fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d8f4877343ec85aa40b90f835d27acd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a2d8f4877343ec85aa40b90f835d27acd">mpModExp</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> y[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> e[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> m[], size_t ndigits)</td></tr>
<tr class="memdesc:a2d8f4877343ec85aa40b90f835d27acd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes y = x^e mod m.  <a href="#a2d8f4877343ec85aa40b90f835d27acd">More...</a><br /></td></tr>
<tr class="separator:a2d8f4877343ec85aa40b90f835d27acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97620bdffb26d735a98a79c8d09f3e91"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> yout[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> e[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> m[], size_t ndigits)</td></tr>
<tr class="memdesc:a97620bdffb26d735a98a79c8d09f3e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes y = x^e mod m in constant time.  <a href="#a97620bdffb26d735a98a79c8d09f3e91">More...</a><br /></td></tr>
<tr class="separator:a97620bdffb26d735a98a79c8d09f3e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a18bc79ee8eeb1af4ac781a1d0094a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#af4a18bc79ee8eeb1af4ac781a1d0094a">mpModMult</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> y[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> m[], size_t ndigits)</td></tr>
<tr class="memdesc:af4a18bc79ee8eeb1af4ac781a1d0094a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a = (x * y) mod m.  <a href="#af4a18bc79ee8eeb1af4ac781a1d0094a">More...</a><br /></td></tr>
<tr class="separator:af4a18bc79ee8eeb1af4ac781a1d0094a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7815359652807a77fda18fc009c73f5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> inv[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> m[], size_t ndigits)</td></tr>
<tr class="memdesc:ac7815359652807a77fda18fc009c73f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the inverse of <code>u</code> modulo <code>m</code>, inv = u^{-1} mod m.  <a href="#ac7815359652807a77fda18fc009c73f5">More...</a><br /></td></tr>
<tr class="separator:ac7815359652807a77fda18fc009c73f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeb1194008ca330a9d0b9ea3324a1676"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#abeb1194008ca330a9d0b9ea3324a1676">mpGcd</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> g[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> y[], size_t ndigits)</td></tr>
<tr class="memdesc:abeb1194008ca330a9d0b9ea3324a1676"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes g = gcd(x, y), the greatest common divisor of x and y.  <a href="#abeb1194008ca330a9d0b9ea3324a1676">More...</a><br /></td></tr>
<tr class="separator:abeb1194008ca330a9d0b9ea3324a1676"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5454229aa62834e7d07afa9008d384fb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> n[], size_t ndigits)</td></tr>
<tr class="memdesc:a5454229aa62834e7d07afa9008d384fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Jacobi symbol (a/n) in {-1, 0, +1}.  <a href="#a5454229aa62834e7d07afa9008d384fb">More...</a><br /></td></tr>
<tr class="separator:a5454229aa62834e7d07afa9008d384fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac76442f903a14ae7497f8f07f6541311"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac76442f903a14ae7497f8f07f6541311">mpBitLength</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits)</td></tr>
<tr class="memdesc:ac76442f903a14ae7497f8f07f6541311"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of significant bits in a.  <a href="#ac76442f903a14ae7497f8f07f6541311">More...</a><br /></td></tr>
<tr class="separator:ac76442f903a14ae7497f8f07f6541311"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcbf4392a96918071c1ea5a357c5a004"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#abcbf4392a96918071c1ea5a357c5a004">mpShiftLeft</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t x, size_t ndigits)</td></tr>
<tr class="memdesc:abcbf4392a96918071c1ea5a357c5a004"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a = b &lt;&lt; x.  <a href="#abcbf4392a96918071c1ea5a357c5a004">More...</a><br /></td></tr>
<tr class="separator:abcbf4392a96918071c1ea5a357c5a004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42ad0c66dd24a99d990344b4ce03ff68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a42ad0c66dd24a99d990344b4ce03ff68">mpShiftRight</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t x, size_t ndigits)</td></tr>
<tr class="memdesc:a42ad0c66dd24a99d990344b4ce03ff68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a = b &gt;&gt; x.  <a href="#a42ad0c66dd24a99d990344b4ce03ff68">More...</a><br /></td></tr>
<tr class="separator:a42ad0c66dd24a99d990344b4ce03ff68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81c2b961614083107347e10cec155f7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a81c2b961614083107347e10cec155f7a">mpXorBits</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> c[], size_t ndigits)</td></tr>
<tr class="memdesc:a81c2b961614083107347e10cec155f7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes bitwise a = b XOR c.  <a href="#a81c2b961614083107347e10cec155f7a">More...</a><br /></td></tr>
<tr class="separator:a81c2b961614083107347e10cec155f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaf5c70793ce41643c96ced238689a81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#aeaf5c70793ce41643c96ced238689a81">mpOrBits</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> c[], size_t ndigits)</td></tr>
<tr class="memdesc:aeaf5c70793ce41643c96ced238689a81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes bitwise a = b OR c.  <a href="#aeaf5c70793ce41643c96ced238689a81">More...</a><br /></td></tr>
<tr class="separator:aeaf5c70793ce41643c96ced238689a81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af904907b242f0417a7f1502984d4efa7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#af904907b242f0417a7f1502984d4efa7">mpAndBits</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> c[], size_t ndigits)</td></tr>
<tr class="memdesc:af904907b242f0417a7f1502984d4efa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes bitwise a = b AND c.  <a href="#af904907b242f0417a7f1502984d4efa7">More...</a><br /></td></tr>
<tr class="separator:af904907b242f0417a7f1502984d4efa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3909af3c6993a99b04aab26bf4393839"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a3909af3c6993a99b04aab26bf4393839">mpNotBits</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t ndigits)</td></tr>
<tr class="memdesc:a3909af3c6993a99b04aab26bf4393839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes bitwise a = NOT b.  <a href="#a3909af3c6993a99b04aab26bf4393839">More...</a><br /></td></tr>
<tr class="separator:a3909af3c6993a99b04aab26bf4393839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84ee4bb85209837256b81a507abca93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ab84ee4bb85209837256b81a507abca93">mpModPowerOf2</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits, size_t L)</td></tr>
<tr class="memdesc:ab84ee4bb85209837256b81a507abca93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a = a mod 2^L, ie clears all bits greater than L.  <a href="#ab84ee4bb85209837256b81a507abca93">More...</a><br /></td></tr>
<tr class="separator:ab84ee4bb85209837256b81a507abca93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa139b4a934c93413cb9656d47852b56e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#aa139b4a934c93413cb9656d47852b56e">mpSetBit</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits, size_t n, int value)</td></tr>
<tr class="memdesc:aa139b4a934c93413cb9656d47852b56e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets bit n of a (0..nbits-1) with value 1 or 0.  <a href="#aa139b4a934c93413cb9656d47852b56e">More...</a><br /></td></tr>
<tr class="separator:aa139b4a934c93413cb9656d47852b56e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af46c6b009f1005c6488b2df3746adc13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#af46c6b009f1005c6488b2df3746adc13">mpGetBit</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits, size_t n)</td></tr>
<tr class="memdesc:af46c6b009f1005c6488b2df3746adc13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns value 1 or 0 of bit n (0..nbits-1)  <a href="#af46c6b009f1005c6488b2df3746adc13">More...</a><br /></td></tr>
<tr class="separator:af46c6b009f1005c6488b2df3746adc13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6033aa03068f258fcfb159b2a756a49a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a6033aa03068f258fcfb159b2a756a49a">mpSetZero</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits)</td></tr>
<tr class="memdesc:a6033aa03068f258fcfb159b2a756a49a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a = 0.  <a href="#a6033aa03068f258fcfb159b2a756a49a">More...</a><br /></td></tr>
<tr class="separator:a6033aa03068f258fcfb159b2a756a49a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2671ebc7457e56163d198ebaf3fb8cd6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a2671ebc7457e56163d198ebaf3fb8cd6">mpSetDigit</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:a2671ebc7457e56163d198ebaf3fb8cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a = d where d is a single digit.  <a href="#a2671ebc7457e56163d198ebaf3fb8cd6">More...</a><br /></td></tr>
<tr class="separator:a2671ebc7457e56163d198ebaf3fb8cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22e470736c2390dda457bf8fbd92ca20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> b[], size_t ndigits)</td></tr>
<tr class="memdesc:a22e470736c2390dda457bf8fbd92ca20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a = b.  <a href="#a22e470736c2390dda457bf8fbd92ca20">More...</a><br /></td></tr>
<tr class="separator:a22e470736c2390dda457bf8fbd92ca20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8409dca5dde18b5ccf73d590be71100"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac8409dca5dde18b5ccf73d590be71100">mpSizeof</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits)</td></tr>
<tr class="memdesc:ac8409dca5dde18b5ccf73d590be71100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of significant non-zero digits in a.  <a href="#ac8409dca5dde18b5ccf73d590be71100">More...</a><br /></td></tr>
<tr class="separator:ac8409dca5dde18b5ccf73d590be71100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc0ef044c121c5166d3e94f0bbbed2bb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#abc0ef044c121c5166d3e94f0bbbed2bb">mpIsPrime</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], size_t ndigits, size_t t)</td></tr>
<tr class="memdesc:abc0ef044c121c5166d3e94f0bbbed2bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true (1) if <code>w</code> is probably prime.  <a href="#abc0ef044c121c5166d3e94f0bbbed2bb">More...</a><br /></td></tr>
<tr class="separator:abc0ef044c121c5166d3e94f0bbbed2bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6661573d9edf51c0800e78cc8abb8a67"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], size_t ndigits, size_t t)</td></tr>
<tr class="memdesc:a6661573d9edf51c0800e78cc8abb8a67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true (1) if <code>w</code> is probably prime using just the Rabin-Miller test.  <a href="#a6661573d9edf51c0800e78cc8abb8a67">More...</a><br /></td></tr>
<tr class="separator:a6661573d9edf51c0800e78cc8abb8a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf93fae14e496cb8282205e99e671706"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#adf93fae14e496cb8282205e99e671706">mpShortAdd</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:adf93fae14e496cb8282205e99e671706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes w = u + d, returns carry.  <a href="#adf93fae14e496cb8282205e99e671706">More...</a><br /></td></tr>
<tr class="separator:adf93fae14e496cb8282205e99e671706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac26b5660b18ff06dd412bcd203731a85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac26b5660b18ff06dd412bcd203731a85">mpShortSub</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> w[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:ac26b5660b18ff06dd412bcd203731a85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes w = u - d, returns borrow.  <a href="#ac26b5660b18ff06dd412bcd203731a85">More...</a><br /></td></tr>
<tr class="separator:ac26b5660b18ff06dd412bcd203731a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22916480831cf6b663435180985fed8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac22916480831cf6b663435180985fed8">mpShortMult</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> p[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:ac22916480831cf6b663435180985fed8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes product p = x * d.  <a href="#ac22916480831cf6b663435180985fed8">More...</a><br /></td></tr>
<tr class="separator:ac22916480831cf6b663435180985fed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f82f2568c209c8260d732794868fc9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a82f82f2568c209c8260d732794868fc9">mpShortDiv</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> q[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:a82f82f2568c209c8260d732794868fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes quotient q = u div d, returns remainder.  <a href="#a82f82f2568c209c8260d732794868fc9">More...</a><br /></td></tr>
<tr class="separator:a82f82f2568c209c8260d732794868fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91261f54d6a922d304405c6802e09c3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a91261f54d6a922d304405c6802e09c3f">mpShortMod</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:a91261f54d6a922d304405c6802e09c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes remainder r = a mod d.  <a href="#a91261f54d6a922d304405c6802e09c3f">More...</a><br /></td></tr>
<tr class="separator:a91261f54d6a922d304405c6802e09c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accf5184fcdf82b57fe62b7b318446c12"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> d, size_t ndigits)</td></tr>
<tr class="memdesc:accf5184fcdf82b57fe62b7b318446c12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sign of (a - d) where d is a single digit.  <a href="#accf5184fcdf82b57fe62b7b318446c12">More...</a><br /></td></tr>
<tr class="separator:accf5184fcdf82b57fe62b7b318446c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a9b1982cfec7c15e180dc3de94278dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a7a9b1982cfec7c15e180dc3de94278dc">spMultiply</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> p[2], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x, <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> y)</td></tr>
<tr class="memdesc:a7a9b1982cfec7c15e180dc3de94278dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes p = x * y, where x and y are single digits.  <a href="#a7a9b1982cfec7c15e180dc3de94278dc">More...</a><br /></td></tr>
<tr class="separator:a7a9b1982cfec7c15e180dc3de94278dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e871a43d19b2d7fcd4b757637a214fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a6e871a43d19b2d7fcd4b757637a214fe">spDivide</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *q, <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *r, const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> u[2], <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> v)</td></tr>
<tr class="memdesc:a6e871a43d19b2d7fcd4b757637a214fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes quotient q = u div v, remainder r = u mod v, where q, r and v are single digits.  <a href="#a6e871a43d19b2d7fcd4b757637a214fe">More...</a><br /></td></tr>
<tr class="separator:a6e871a43d19b2d7fcd4b757637a214fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a580b353eb67d03b0a36368511797fa40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a580b353eb67d03b0a36368511797fa40">spSimpleRand</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> lower, <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> upper)</td></tr>
<tr class="memdesc:a580b353eb67d03b0a36368511797fa40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a simple pseudo-random digit between lower and upper.  <a href="#a580b353eb67d03b0a36368511797fa40">More...</a><br /></td></tr>
<tr class="separator:a580b353eb67d03b0a36368511797fa40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86b813ec2dcf43e905e1614d2de0f1e9"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a86b813ec2dcf43e905e1614d2de0f1e9">mpQuickRandBits</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits, size_t nbits)</td></tr>
<tr class="memdesc:a86b813ec2dcf43e905e1614d2de0f1e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a quick-and-dirty random mp number a of bit length at most <code>nbits</code> using plain-old-rand.  <a href="#a86b813ec2dcf43e905e1614d2de0f1e9">More...</a><br /></td></tr>
<tr class="separator:a86b813ec2dcf43e905e1614d2de0f1e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b22b1bc35491ee1e1fa7edd7ad93185"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a7b22b1bc35491ee1e1fa7edd7ad93185">mpPrintHex</a> (const char *prefix, const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *p, size_t ndigits, const char *suffix)</td></tr>
<tr class="memdesc:a7b22b1bc35491ee1e1fa7edd7ad93185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print in hex format with optional prefix and suffix strings.  <a href="#a7b22b1bc35491ee1e1fa7edd7ad93185">More...</a><br /></td></tr>
<tr class="separator:a7b22b1bc35491ee1e1fa7edd7ad93185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1e7a1e2a5b40073e6081c56b6ea233c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#ac1e7a1e2a5b40073e6081c56b6ea233c">mpPrint</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *p, size_t ndigits)</td></tr>
<tr class="memdesc:ac1e7a1e2a5b40073e6081c56b6ea233c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print in decimal format with optional prefix and suffix strings.  <a href="#ac1e7a1e2a5b40073e6081c56b6ea233c">More...</a><br /></td></tr>
<tr class="separator:ac1e7a1e2a5b40073e6081c56b6ea233c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a075138d798d868deaeb340a2dcbe49dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a075138d798d868deaeb340a2dcbe49dd">mpPrintNL</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *p, size_t ndigits)</td></tr>
<tr class="memdesc:a075138d798d868deaeb340a2dcbe49dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print all digits in hex with newlines.  <a href="#a075138d798d868deaeb340a2dcbe49dd">More...</a><br /></td></tr>
<tr class="separator:a075138d798d868deaeb340a2dcbe49dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f3ab6dcf96ba16dfd74c3143f2f62a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a0f3ab6dcf96ba16dfd74c3143f2f62a4">mpPrintTrim</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *p, size_t ndigits)</td></tr>
<tr class="memdesc:a0f3ab6dcf96ba16dfd74c3143f2f62a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print in hex but trim leading zero digits.  <a href="#a0f3ab6dcf96ba16dfd74c3143f2f62a4">More...</a><br /></td></tr>
<tr class="separator:a0f3ab6dcf96ba16dfd74c3143f2f62a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c94137a0eeb9ba885cb29614aee4722"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a5c94137a0eeb9ba885cb29614aee4722">mpPrintTrimNL</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *p, size_t ndigits)</td></tr>
<tr class="memdesc:a5c94137a0eeb9ba885cb29614aee4722"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print in hex, trim leading zeroes, add newlines.  <a href="#a5c94137a0eeb9ba885cb29614aee4722">More...</a><br /></td></tr>
<tr class="separator:a5c94137a0eeb9ba885cb29614aee4722"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a823cf13c9e7d9f9eab6deb69ebfeb9ed"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a823cf13c9e7d9f9eab6deb69ebfeb9ed">mpConvFromOctets</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits, const unsigned char *c, size_t nbytes)</td></tr>
<tr class="memdesc:a823cf13c9e7d9f9eab6deb69ebfeb9ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts nbytes octets into big digit a of max size ndigits.  <a href="#a823cf13c9e7d9f9eab6deb69ebfeb9ed">More...</a><br /></td></tr>
<tr class="separator:a823cf13c9e7d9f9eab6deb69ebfeb9ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05113aebddaf11ae4870ac31bf6de35e"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a05113aebddaf11ae4870ac31bf6de35e">mpConvToOctets</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> a[], size_t ndigits, unsigned char *c, size_t nbytes)</td></tr>
<tr class="memdesc:a05113aebddaf11ae4870ac31bf6de35e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts big digit a into string of octets, in big-endian order, padding to nbytes or truncating if necessary.  <a href="#a05113aebddaf11ae4870ac31bf6de35e">More...</a><br /></td></tr>
<tr class="separator:a05113aebddaf11ae4870ac31bf6de35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cb17ed6e90ecd009b3e8e13a1533d46"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a9cb17ed6e90ecd009b3e8e13a1533d46">mpIsNegative</a> (const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], size_t ndigits)</td></tr>
<tr class="memdesc:a9cb17ed6e90ecd009b3e8e13a1533d46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a string in decimal format to a big digit.  <a href="#a9cb17ed6e90ecd009b3e8e13a1533d46">More...</a><br /></td></tr>
<tr class="separator:a9cb17ed6e90ecd009b3e8e13a1533d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a115feb6997645e676e971287dd07be3d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a115feb6997645e676e971287dd07be3d">mpChs</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> y[], size_t ndigits)</td></tr>
<tr class="memdesc:a115feb6997645e676e971287dd07be3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets x = -y.  <a href="#a115feb6997645e676e971287dd07be3d">More...</a><br /></td></tr>
<tr class="separator:a115feb6997645e676e971287dd07be3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc3a35a960069e8c18e7a9ee3ed24191"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#acc3a35a960069e8c18e7a9ee3ed24191">mpAbs</a> (<a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> x[], const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> y[], size_t ndigits)</td></tr>
<tr class="memdesc:acc3a35a960069e8c18e7a9ee3ed24191"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets x = |y|, the absolute value of y.  <a href="#acc3a35a960069e8c18e7a9ee3ed24191">More...</a><br /></td></tr>
<tr class="separator:acc3a35a960069e8c18e7a9ee3ed24191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5593505351c9c1938ad52404c8f9a44c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bigdigits_8h.html#a5593505351c9c1938ad52404c8f9a44c">mpVersion</a> (void)</td></tr>
<tr class="memdesc:a5593505351c9c1938ad52404c8f9a44c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a signed integer in decimal format with optional prefix and suffix strings.  <a href="#a5593505351c9c1938ad52404c8f9a44c">More...</a><br /></td></tr>
<tr class="separator:a5593505351c9c1938ad52404c8f9a44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ab56c606f91a4f8d105bbf3bbe0640b6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab56c606f91a4f8d105bbf3bbe0640b6c">&#9670;&nbsp;</a></span>DIGIT_T</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The basic BigDigit element, an unsigned 32-bit integer. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="acc3a35a960069e8c18e7a9ee3ed24191"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc3a35a960069e8c18e7a9ee3ed24191">&#9670;&nbsp;</a></span>mpAbs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpAbs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>y</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets x = |y|, the absolute value of y. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Expects a negative number to be stored in two's-complement representation.</dd></dl>
<p>Sets x = |y|, the absolute value of y. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a115feb6997645e676e971287dd07be3d">mpChs()</a>, <a class="el" href="bigdigits_8h.html#a9cb17ed6e90ecd009b3e8e13a1533d46">mpIsNegative()</a>, and <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>.</p>

</div>
</div>
<a id="a46b2df2b78b1c6058407f4a42d9bc352"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46b2df2b78b1c6058407f4a42d9bc352">&#9670;&nbsp;</a></span>mpAdd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpAdd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>v</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes w = u + v, returns carry. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, and <a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt()</a>.</p>

</div>
</div>
<a id="af904907b242f0417a7f1502984d4efa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af904907b242f0417a7f1502984d4efa7">&#9670;&nbsp;</a></span>mpAndBits()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpAndBits </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>c</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes bitwise a = b AND c. </p>

</div>
</div>
<a id="ac76442f903a14ae7497f8f07f6541311"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac76442f903a14ae7497f8f07f6541311">&#9670;&nbsp;</a></span>mpBitLength()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpBitLength </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns number of significant bits in a. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#ac8409dca5dde18b5ccf73d590be71100">mpSizeof()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct()</a>.</p>

</div>
</div>
<a id="a115feb6997645e676e971287dd07be3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a115feb6997645e676e971287dd07be3d">&#9670;&nbsp;</a></span>mpChs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpChs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>y</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets x = -y. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Expects a negative number to be stored in two's-complement representation. </dd></dl>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a9cb17ed6e90ecd009b3e8e13a1533d46">mpIsNegative()</a>, <a class="el" href="bigdigits_8h.html#a3909af3c6993a99b04aab26bf4393839">mpNotBits()</a>, <a class="el" href="bigdigits_8h.html#adf93fae14e496cb8282205e99e671706">mpShortAdd()</a>, and <a class="el" href="bigdigits_8h.html#ac26b5660b18ff06dd412bcd203731a85">mpShortSub()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#acc3a35a960069e8c18e7a9ee3ed24191">mpAbs()</a>.</p>

</div>
</div>
<a id="a4246d9127540532315d570f7c8424a40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4246d9127540532315d570f7c8424a40">&#9670;&nbsp;</a></span>mpCompare()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpCompare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns sign of <code>(a-b)</code> as <code>{-1,0,+1}</code> using constant-time algorithm. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Constant-time with respect to <code>ndigits</code></dd></dl>
<p>Returns sign of <code>(a-b)</code> as <code>{-1,0,+1}</code> using constant-time algorithm. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>, and <a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt()</a>.</p>

</div>
</div>
<a id="ac32b90400c290ae7164682784db0cf72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac32b90400c290ae7164682784db0cf72">&#9670;&nbsp;</a></span>mpCompare_q()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpCompare_q </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns sign of <code>(a-b)</code> as <code>{-1,0,+1}</code> (quick) </p>
<dl class="section remark"><dt>Remarks</dt><dd>Not constant-time.</dd></dl>
<p>Returns sign of <code>(a-b)</code> as <code>{-1,0,+1}</code> (quick)</p>
<p>Not constant-time. </p>

</div>
</div>
<a id="a823cf13c9e7d9f9eab6deb69ebfeb9ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a823cf13c9e7d9f9eab6deb69ebfeb9ed">&#9670;&nbsp;</a></span>mpConvFromOctets()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpConvFromOctets </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts nbytes octets into big digit a of max size ndigits. </p>
<dl class="section return"><dt>Returns</dt><dd>actual number of digits set</dd></dl>
<ul>
<li>ADDED [v2.5] */ </li>
</ul>

</div>
</div>
<a id="a05113aebddaf11ae4870ac31bf6de35e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05113aebddaf11ae4870ac31bf6de35e">&#9670;&nbsp;</a></span>mpConvToOctets()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpConvToOctets </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts big digit a into string of octets, in big-endian order, padding to nbytes or truncating if necessary. </p>
<dl class="section return"><dt>Returns</dt><dd>number of non-zero octets required. </dd></dl>

</div>
</div>
<a id="af06b4d31d69a7b81da3aaa144a6d49fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af06b4d31d69a7b81da3aaa144a6d49fb">&#9670;&nbsp;</a></span>mpCubeRoot()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpCubeRoot </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>s</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes integer cube root s = floor(cuberoot(x)) </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a46b2df2b78b1c6058407f4a42d9bc352">mpAdd()</a>, <a class="el" href="bigdigits_8h.html#a4246d9127540532315d570f7c8424a40">mpCompare()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, <a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp()</a>, and <a class="el" href="bigdigits_8h.html#a82f82f2568c209c8260d732794868fc9">mpShortDiv()</a>.</p>

</div>
</div>
<a id="aef30a26e38c65986ce0b058c2fb1990b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef30a26e38c65986ce0b058c2fb1990b">&#9670;&nbsp;</a></span>mpDivide()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpDivide </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>q</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>r</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>udigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>v</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vdigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes integer division of u by v such that u=qv+r. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">q</td><td>to receive quotient = u div v, an array of size <code>udigits</code> </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>to receive divisor = u mod v, an array of size <code>udigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td>dividend of size <code>udigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">udigits</td><td>size of arrays <code>q</code> <code>r</code> and <code>u</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>divisor of size <code>vdigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">vdigits</td><td>size of array <code>v</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>Trashes q and r first </dd></dl>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a46b2df2b78b1c6058407f4a42d9bc352">mpAdd()</a>, <a class="el" href="bigdigits_8h.html#a4246d9127540532315d570f7c8424a40">mpCompare()</a>, <a class="el" href="bigdigits_8h.html#a2671ebc7457e56163d198ebaf3fb8cd6">mpSetDigit()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, <a class="el" href="bigdigits_8h.html#a6033aa03068f258fcfb159b2a756a49a">mpSetZero()</a>, <a class="el" href="bigdigits_8h.html#abcbf4392a96918071c1ea5a357c5a004">mpShiftLeft()</a>, <a class="el" href="bigdigits_8h.html#a42ad0c66dd24a99d990344b4ce03ff68">mpShiftRight()</a>, <a class="el" href="bigdigits_8h.html#a82f82f2568c209c8260d732794868fc9">mpShortDiv()</a>, <a class="el" href="bigdigits_8h.html#ac8409dca5dde18b5ccf73d590be71100">mpSizeof()</a>, and <a class="el" href="bigdigits_8h.html#a6e871a43d19b2d7fcd4b757637a214fe">spDivide()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot()</a>, <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, <a class="el" href="bigdigits_8h.html#afa74ecdc3660423f2f3f7973ecef6e0e">mpModulo()</a>, and <a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt()</a>.</p>

</div>
</div>
<a id="a8ff4d09455d3bc0be1c3597124e20073"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ff4d09455d3bc0be1c3597124e20073">&#9670;&nbsp;</a></span>mpEqual()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpEqual </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if a == b, else false, using constant-time algorithm. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Constant-time with respect to <code>ndigits</code></dd></dl>
<p>Returns true if a == b, else false, using constant-time algorithm. </p>

</div>
</div>
<a id="ae0075ded2e08296e00c7d0d8236baa9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0075ded2e08296e00c7d0d8236baa9e">&#9670;&nbsp;</a></span>mpEqual_q()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpEqual_q </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if a == b, else false (quick) </p>
<dl class="section remark"><dt>Remarks</dt><dd>Not constant-time.</dd></dl>
<p>Returns true if a == b, else false (quick)</p>
<p>Not constant-time. </p>

</div>
</div>
<a id="abeb1194008ca330a9d0b9ea3324a1676"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abeb1194008ca330a9d0b9ea3324a1676">&#9670;&nbsp;</a></span>mpGcd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpGcd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>g</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>y</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes g = gcd(x, y), the greatest common divisor of x and y. </p>

</div>
</div>
<a id="af46c6b009f1005c6488b2df3746adc13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af46c6b009f1005c6488b2df3746adc13">&#9670;&nbsp;</a></span>mpGetBit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpGetBit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns value 1 or 0 of bit n (0..nbits-1) </p>

</div>
</div>
<a id="a9cb17ed6e90ecd009b3e8e13a1533d46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cb17ed6e90ecd009b3e8e13a1533d46">&#9670;&nbsp;</a></span>mpIsNegative()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpIsNegative </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts a string in decimal format to a big digit. </p>
<dl class="section return"><dt>Returns</dt><dd>actual number of (possibly zero) digits set. Converts big digit a into a string in decimal format, where s has size smax including the terminating zero. </dd>
<dd>
number of chars required excluding leading zeroes. Converts a string in hexadecimal format to a big digit. </dd>
<dd>
actual number of (possibly zero) digits set. Converts big digit a into a string in hexadecimal format, where s has size smax including the terminating zero. </dd>
<dd>
number of chars required excluding leading zeroes. Returns true (1) if x &lt; 0, else false (0) </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Expects a negative number to be stored in two's-complement representation.</dd></dl>
<p>Converts a string in decimal format to a big digit. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#acc3a35a960069e8c18e7a9ee3ed24191">mpAbs()</a>, and <a class="el" href="bigdigits_8h.html#a115feb6997645e676e971287dd07be3d">mpChs()</a>.</p>

</div>
</div>
<a id="abc0ef044c121c5166d3e94f0bbbed2bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc0ef044c121c5166d3e94f0bbbed2bb">&#9670;&nbsp;</a></span>mpIsPrime()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpIsPrime </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true (1) if <code>w</code> is probably prime. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>Number to test </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ndigits</td><td>size of array <code>w</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">t</td><td>The count of Rabin-Miller primality tests to carry out (recommended at least 80) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true (1) if w is probably prime otherwise false (0) </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>Uses FIPS-186-2/Rabin-Miller with trial division by small primes, which is faster in most cases than <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67" title="Returns true (1) if w is probably prime using just the Rabin-Miller test. ">mpRabinMiller()</a>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67" title="Returns true (1) if w is probably prime using just the Rabin-Miller test. ">mpRabinMiller()</a>. </dd></dl>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>, <a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp()</a>, and <a class="el" href="bigdigits_8h.html#a91261f54d6a922d304405c6802e09c3f">mpShortMod()</a>.</p>

</div>
</div>
<a id="af21aed296a2a54c5af0ba717bc1b87f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af21aed296a2a54c5af0ba717bc1b87f3">&#9670;&nbsp;</a></span>mpIsZero()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpIsZero </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if a is zero, else false, using constant-time algorithm. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Constant-time with respect to <code>ndigits</code></dd></dl>
<p>Returns true if a is zero, else false, using constant-time algorithm. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi()</a>, <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, and <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="af6ea424f6e1f6c2ca3a1af8fbe4455fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6ea424f6e1f6c2ca3a1af8fbe4455fe">&#9670;&nbsp;</a></span>mpIsZero_q()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpIsZero_q </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true if a is zero, else false (quick) </p>
<dl class="section remark"><dt>Remarks</dt><dd>Not constant-time.</dd></dl>
<p>Returns true if a is zero, else false (quick)</p>
<p>Not constant-time. </p>

</div>
</div>
<a id="a5454229aa62834e7d07afa9008d384fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5454229aa62834e7d07afa9008d384fb">&#9670;&nbsp;</a></span>mpJacobi()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpJacobi </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>n</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the Jacobi symbol (a/n) in {-1, 0, +1}. </p>
<dl class="section remark"><dt>Remarks</dt><dd>If n is prime then the Jacobi symbol becomes the Legendre symbol (a/p) defined to be<ul>
<li>(a/p) = +1 if a is a quadratic residue modulo p</li>
<li>(a/p) = -1 if a is a quadratic non-residue modulo p</li>
<li>(a/p) = 0 if a is divisible by p </li>
</ul>
</dd></dl>

<p class="reference">References <a class="el" href="bigdigits_8h.html#af21aed296a2a54c5af0ba717bc1b87f3">mpIsZero()</a>, <a class="el" href="bigdigits_8h.html#afa74ecdc3660423f2f3f7973ecef6e0e">mpModulo()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, <a class="el" href="bigdigits_8h.html#a42ad0c66dd24a99d990344b4ce03ff68">mpShiftRight()</a>, <a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp()</a>, and <a class="el" href="bigdigits_8h.html#a91261f54d6a922d304405c6802e09c3f">mpShortMod()</a>.</p>

</div>
</div>
<a id="a2d8f4877343ec85aa40b90f835d27acd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d8f4877343ec85aa40b90f835d27acd">&#9670;&nbsp;</a></span>mpModExp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpModExp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>y</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>e</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>m</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes y = x^e mod m. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a2671ebc7457e56163d198ebaf3fb8cd6">mpSetDigit()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, and <a class="el" href="bigdigits_8h.html#ac8409dca5dde18b5ccf73d590be71100">mpSizeof()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="a97620bdffb26d735a98a79c8d09f3e91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97620bdffb26d735a98a79c8d09f3e91">&#9670;&nbsp;</a></span>mpModExp_ct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpModExp_ct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>yout</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>e</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>m</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes y = x^e mod m in constant time. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Resistant to simple power analysis attack on private exponent. Slower than <a class="el" href="bigdigits_8h.html#a2d8f4877343ec85aa40b90f835d27acd" title="Computes y = x^e mod m. ">mpModExp()</a>.</dd></dl>
<p>Computes y = x^e mod m in constant time. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#ac76442f903a14ae7497f8f07f6541311">mpBitLength()</a>, <a class="el" href="bigdigits_8h.html#af4a18bc79ee8eeb1af4ac781a1d0094a">mpModMult()</a>, <a class="el" href="bigdigits_8h.html#afa74ecdc3660423f2f3f7973ecef6e0e">mpModulo()</a>, <a class="el" href="bigdigits_8h.html#a2671ebc7457e56163d198ebaf3fb8cd6">mpSetDigit()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, and <a class="el" href="bigdigits_8h.html#ac8409dca5dde18b5ccf73d590be71100">mpSizeof()</a>.</p>

</div>
</div>
<a id="ac7815359652807a77fda18fc009c73f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7815359652807a77fda18fc009c73f5">&#9670;&nbsp;</a></span>mpModInv()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpModInv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>inv</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>m</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes the inverse of <code>u</code> modulo <code>m</code>, inv = u^{-1} mod m. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a46b2df2b78b1c6058407f4a42d9bc352">mpAdd()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#af21aed296a2a54c5af0ba717bc1b87f3">mpIsZero()</a>, <a class="el" href="bigdigits_8h.html#a7722e651a813d81c395293d956ee0aad">mpMultiply()</a>, <a class="el" href="bigdigits_8h.html#a2671ebc7457e56163d198ebaf3fb8cd6">mpSetDigit()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, <a class="el" href="bigdigits_8h.html#a6033aa03068f258fcfb159b2a756a49a">mpSetZero()</a>, <a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp()</a>, and <a class="el" href="bigdigits_8h.html#ab62d5d5b7964485ecb262371c1f50b4c">mpSubtract()</a>.</p>

</div>
</div>
<a id="af4a18bc79ee8eeb1af4ac781a1d0094a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4a18bc79ee8eeb1af4ac781a1d0094a">&#9670;&nbsp;</a></span>mpModMult()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpModMult </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>y</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>m</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes a = (x * y) mod m. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#afa74ecdc3660423f2f3f7973ecef6e0e">mpModulo()</a>, and <a class="el" href="bigdigits_8h.html#a7722e651a813d81c395293d956ee0aad">mpMultiply()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct()</a>, and <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="ab84ee4bb85209837256b81a507abca93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab84ee4bb85209837256b81a507abca93">&#9670;&nbsp;</a></span>mpModPowerOf2()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpModPowerOf2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>L</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes a = a mod 2^L, ie clears all bits greater than L. </p>

</div>
</div>
<a id="afa74ecdc3660423f2f3f7973ecef6e0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa74ecdc3660423f2f3f7973ecef6e0e">&#9670;&nbsp;</a></span>mpModulo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpModulo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>r</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>udigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>v</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>vdigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes remainder r = u mod v. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>to receive divisor = u mod v, an array of size <code>vdigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td>dividend of size <code>udigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">udigits</td><td>size of arrays <code>r</code> and <code>u</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>divisor of size <code>vdigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">vdigits</td><td>size of array <code>v</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>Note that <code>r</code> is <code>vdigits</code> long here, but is <code>udigits</code> long in <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b" title="Computes integer division of u by v such that u=qv+r. ">mpDivide()</a>.</dd></dl>
<ul>
<li>Returns ceil(x) as a non-negative integer or 0 if x &lt; 0 */* Convert big digit a into a string in given base format,* Convert big digit a into a string in decimal format,* Convert big digit a into a string in hexadecimal format,* Convert a string in decimal format to a big digit.* Convert a string in hexadecimal format to a big digit. </li>
</ul>

<p class="reference">References <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, and <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi()</a>, <a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct()</a>, and <a class="el" href="bigdigits_8h.html#af4a18bc79ee8eeb1af4ac781a1d0094a">mpModMult()</a>.</p>

</div>
</div>
<a id="a7722e651a813d81c395293d956ee0aad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7722e651a813d81c395293d956ee0aad">&#9670;&nbsp;</a></span>mpMultiply()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpMultiply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>v</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes product w = u * v. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">w</td><td>To receive the product, an array of size 2 x <code>ndigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">u</td><td>An array of size <code>ndigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>An array of size <code>ndigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ndigits</td><td>size of arrays <code>u</code> and <code>v</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>The product must be of size 2 x <code>ndigits</code> </dd></dl>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, and <a class="el" href="bigdigits_8h.html#af4a18bc79ee8eeb1af4ac781a1d0094a">mpModMult()</a>.</p>

</div>
</div>
<a id="a3909af3c6993a99b04aab26bf4393839"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3909af3c6993a99b04aab26bf4393839">&#9670;&nbsp;</a></span>mpNotBits()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpNotBits </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes bitwise a = NOT b. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a115feb6997645e676e971287dd07be3d">mpChs()</a>.</p>

</div>
</div>
<a id="aeaf5c70793ce41643c96ced238689a81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeaf5c70793ce41643c96ced238689a81">&#9670;&nbsp;</a></span>mpOrBits()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpOrBits </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>c</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes bitwise a = b OR c. </p>

</div>
</div>
<a id="ac1e7a1e2a5b40073e6081c56b6ea233c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1e7a1e2a5b40073e6081c56b6ea233c">&#9670;&nbsp;</a></span>mpPrint()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpPrint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print in decimal format with optional prefix and suffix strings. </p>
<p>Print all digits in hex incl leading zero digits </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a0f3ab6dcf96ba16dfd74c3143f2f62a4">mpPrintTrim()</a>.</p>

</div>
</div>
<a id="a7b22b1bc35491ee1e1fa7edd7ad93185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b22b1bc35491ee1e1fa7edd7ad93185">&#9670;&nbsp;</a></span>mpPrintHex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpPrintHex </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>suffix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print in hex format with optional prefix and suffix strings. </p>

</div>
</div>
<a id="a075138d798d868deaeb340a2dcbe49dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a075138d798d868deaeb340a2dcbe49dd">&#9670;&nbsp;</a></span>mpPrintNL()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpPrintNL </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print all digits in hex with newlines. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a5c94137a0eeb9ba885cb29614aee4722">mpPrintTrimNL()</a>.</p>

</div>
</div>
<a id="a0f3ab6dcf96ba16dfd74c3143f2f62a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f3ab6dcf96ba16dfd74c3143f2f62a4">&#9670;&nbsp;</a></span>mpPrintTrim()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpPrintTrim </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print in hex but trim leading zero digits. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#ac1e7a1e2a5b40073e6081c56b6ea233c">mpPrint()</a>.</p>

</div>
</div>
<a id="a5c94137a0eeb9ba885cb29614aee4722"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c94137a0eeb9ba885cb29614aee4722">&#9670;&nbsp;</a></span>mpPrintTrimNL()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpPrintTrimNL </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print in hex, trim leading zeroes, add newlines. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a075138d798d868deaeb340a2dcbe49dd">mpPrintNL()</a>.</p>

</div>
</div>
<a id="a86b813ec2dcf43e905e1614d2de0f1e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86b813ec2dcf43e905e1614d2de0f1e9">&#9670;&nbsp;</a></span>mpQuickRandBits()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpQuickRandBits </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate a quick-and-dirty random mp number a of bit length at most <code>nbits</code> using plain-old-rand. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Not crypto secure. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>mpRandomBits()</dd></dl>
<p>Generate a quick-and-dirty random mp number a of bit length at most <code>nbits</code> using plain-old-rand. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a6033aa03068f258fcfb159b2a756a49a">mpSetZero()</a>, and <a class="el" href="bigdigits_8h.html#a580b353eb67d03b0a36368511797fa40">spSimpleRand()</a>.</p>

</div>
</div>
<a id="a6661573d9edf51c0800e78cc8abb8a67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6661573d9edf51c0800e78cc8abb8a67">&#9670;&nbsp;</a></span>mpRabinMiller()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpRabinMiller </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns true (1) if <code>w</code> is probably prime using just the Rabin-Miller test. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="bigdigits_8h.html#abc0ef044c121c5166d3e94f0bbbed2bb" title="Returns true (1) if w is probably prime. ">mpIsPrime()</a> is preferred. </dd></dl>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a4246d9127540532315d570f7c8424a40">mpCompare()</a>, <a class="el" href="bigdigits_8h.html#af21aed296a2a54c5af0ba717bc1b87f3">mpIsZero()</a>, <a class="el" href="bigdigits_8h.html#a2d8f4877343ec85aa40b90f835d27acd">mpModExp()</a>, <a class="el" href="bigdigits_8h.html#af4a18bc79ee8eeb1af4ac781a1d0094a">mpModMult()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, <a class="el" href="bigdigits_8h.html#a6033aa03068f258fcfb159b2a756a49a">mpSetZero()</a>, <a class="el" href="bigdigits_8h.html#a42ad0c66dd24a99d990344b4ce03ff68">mpShiftRight()</a>, <a class="el" href="bigdigits_8h.html#adf93fae14e496cb8282205e99e671706">mpShortAdd()</a>, <a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp()</a>, <a class="el" href="bigdigits_8h.html#ac26b5660b18ff06dd412bcd203731a85">mpShortSub()</a>, and <a class="el" href="bigdigits_8h.html#ac8409dca5dde18b5ccf73d590be71100">mpSizeof()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#abc0ef044c121c5166d3e94f0bbbed2bb">mpIsPrime()</a>.</p>

</div>
</div>
<a id="aa139b4a934c93413cb9656d47852b56e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa139b4a934c93413cb9656d47852b56e">&#9670;&nbsp;</a></span>mpSetBit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpSetBit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets bit n of a (0..nbits-1) with value 1 or 0. </p>

</div>
</div>
<a id="a2671ebc7457e56163d198ebaf3fb8cd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2671ebc7457e56163d198ebaf3fb8cd6">&#9670;&nbsp;</a></span>mpSetDigit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpSetDigit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets a = d where d is a single digit. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#abcbf4392a96918071c1ea5a357c5a004">mpShiftLeft()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a2d8f4877343ec85aa40b90f835d27acd">mpModExp()</a>, <a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct()</a>, and <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>.</p>

</div>
</div>
<a id="a22e470736c2390dda457bf8fbd92ca20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22e470736c2390dda457bf8fbd92ca20">&#9670;&nbsp;</a></span>mpSetEqual()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpSetEqual </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets a = b. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#acc3a35a960069e8c18e7a9ee3ed24191">mpAbs()</a>, <a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi()</a>, <a class="el" href="bigdigits_8h.html#a2d8f4877343ec85aa40b90f835d27acd">mpModExp()</a>, <a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct()</a>, <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, <a class="el" href="bigdigits_8h.html#afa74ecdc3660423f2f3f7973ecef6e0e">mpModulo()</a>, <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>, and <a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt()</a>.</p>

</div>
</div>
<a id="a6033aa03068f258fcfb159b2a756a49a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6033aa03068f258fcfb159b2a756a49a">&#9670;&nbsp;</a></span>mpSetZero()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpSetZero </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets a = 0. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, <a class="el" href="bigdigits_8h.html#a86b813ec2dcf43e905e1614d2de0f1e9">mpQuickRandBits()</a>, and <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="abcbf4392a96918071c1ea5a357c5a004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcbf4392a96918071c1ea5a357c5a004">&#9670;&nbsp;</a></span>mpShiftLeft()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShiftLeft </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes a = b &lt;&lt; x. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a2671ebc7457e56163d198ebaf3fb8cd6">mpSetDigit()</a>, and <a class="el" href="bigdigits_8h.html#a82f82f2568c209c8260d732794868fc9">mpShortDiv()</a>.</p>

</div>
</div>
<a id="a42ad0c66dd24a99d990344b4ce03ff68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42ad0c66dd24a99d990344b4ce03ff68">&#9670;&nbsp;</a></span>mpShiftRight()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShiftRight </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes a = b &gt;&gt; x. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi()</a>, <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>, and <a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt()</a>.</p>

</div>
</div>
<a id="adf93fae14e496cb8282205e99e671706"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf93fae14e496cb8282205e99e671706">&#9670;&nbsp;</a></span>mpShortAdd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShortAdd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes w = u + d, returns carry. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a115feb6997645e676e971287dd07be3d">mpChs()</a>, and <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="accf5184fcdf82b57fe62b7b318446c12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accf5184fcdf82b57fe62b7b318446c12">&#9670;&nbsp;</a></span>mpShortCmp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpShortCmp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns sign of (a - d) where d is a single digit. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot()</a>, <a class="el" href="bigdigits_8h.html#abc0ef044c121c5166d3e94f0bbbed2bb">mpIsPrime()</a>, <a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi()</a>, <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>, <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>, and <a class="el" href="bigdigits_8h.html#aa29bf074672994682723540c20155ccf">mpSqrt()</a>.</p>

</div>
</div>
<a id="a82f82f2568c209c8260d732794868fc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82f82f2568c209c8260d732794868fc9">&#9670;&nbsp;</a></span>mpShortDiv()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShortDiv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>q</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes quotient q = u div d, returns remainder. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#abcbf4392a96918071c1ea5a357c5a004">mpShiftLeft()</a>, and <a class="el" href="bigdigits_8h.html#a6e871a43d19b2d7fcd4b757637a214fe">spDivide()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#af06b4d31d69a7b81da3aaa144a6d49fb">mpCubeRoot()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, and <a class="el" href="bigdigits_8h.html#a91261f54d6a922d304405c6802e09c3f">mpShortMod()</a>.</p>

</div>
</div>
<a id="a91261f54d6a922d304405c6802e09c3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91261f54d6a922d304405c6802e09c3f">&#9670;&nbsp;</a></span>mpShortMod()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShortMod </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes remainder r = a mod d. </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a82f82f2568c209c8260d732794868fc9">mpShortDiv()</a>.</p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#abc0ef044c121c5166d3e94f0bbbed2bb">mpIsPrime()</a>, and <a class="el" href="bigdigits_8h.html#a5454229aa62834e7d07afa9008d384fb">mpJacobi()</a>.</p>

</div>
</div>
<a id="ac22916480831cf6b663435180985fed8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac22916480831cf6b663435180985fed8">&#9670;&nbsp;</a></span>mpShortMult()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShortMult </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>p</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes product p = x * d. </p>

</div>
</div>
<a id="ac26b5660b18ff06dd412bcd203731a85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac26b5660b18ff06dd412bcd203731a85">&#9670;&nbsp;</a></span>mpShortSub()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpShortSub </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes w = u - d, returns borrow. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a115feb6997645e676e971287dd07be3d">mpChs()</a>, and <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="ac8409dca5dde18b5ccf73d590be71100"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8409dca5dde18b5ccf73d590be71100">&#9670;&nbsp;</a></span>mpSizeof()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mpSizeof </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns number of significant non-zero digits in a. </p>
<p>Returns number of significant non-zero digits in a. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#ac76442f903a14ae7497f8f07f6541311">mpBitLength()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a2d8f4877343ec85aa40b90f835d27acd">mpModExp()</a>, <a class="el" href="bigdigits_8h.html#a97620bdffb26d735a98a79c8d09f3e91">mpModExp_ct()</a>, and <a class="el" href="bigdigits_8h.html#a6661573d9edf51c0800e78cc8abb8a67">mpRabinMiller()</a>.</p>

</div>
</div>
<a id="aa29bf074672994682723540c20155ccf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa29bf074672994682723540c20155ccf">&#9670;&nbsp;</a></span>mpSqrt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpSqrt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>s</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes integer square root s = floor(sqrt(x)) </p>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a46b2df2b78b1c6058407f4a42d9bc352">mpAdd()</a>, <a class="el" href="bigdigits_8h.html#a4246d9127540532315d570f7c8424a40">mpCompare()</a>, <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a22e470736c2390dda457bf8fbd92ca20">mpSetEqual()</a>, <a class="el" href="bigdigits_8h.html#a42ad0c66dd24a99d990344b4ce03ff68">mpShiftRight()</a>, and <a class="el" href="bigdigits_8h.html#accf5184fcdf82b57fe62b7b318446c12">mpShortCmp()</a>.</p>

</div>
</div>
<a id="ad8426b0575d2fcd0008306ca3e2aed7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8426b0575d2fcd0008306ca3e2aed7a">&#9670;&nbsp;</a></span>mpSquare()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpSquare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes square w = x^2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">w</td><td>array of size 2 x <code>ndigits</code> to receive square </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>array of size <code>ndigits</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ndigits</td><td>size of array <code>x</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>The product <code>w</code> must be of size 2 x <code>ndigits</code> </dd></dl>

</div>
</div>
<a id="ab62d5d5b7964485ecb262371c1f50b4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab62d5d5b7964485ecb262371c1f50b4c">&#9670;&nbsp;</a></span>mpSubtract()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> mpSubtract </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>w</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>v</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes w = u - v, returns borrow. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#ac7815359652807a77fda18fc009c73f5">mpModInv()</a>.</p>

</div>
</div>
<a id="a5593505351c9c1938ad52404c8f9a44c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5593505351c9c1938ad52404c8f9a44c">&#9670;&nbsp;</a></span>mpVersion()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int mpVersion </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print a signed integer in decimal format with optional prefix and suffix strings. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Expects a negative number to be stored in two's-complement representation.Returns version number = major*1000+minor*100+release*10+PP_OPTIONS </dd></dl>

<p class="reference">References <a class="el" href="bigdigits_8h.html#a6e871a43d19b2d7fcd4b757637a214fe">spDivide()</a>, and <a class="el" href="bigdigits_8h.html#a7a9b1982cfec7c15e180dc3de94278dc">spMultiply()</a>.</p>

</div>
</div>
<a id="a81c2b961614083107347e10cec155f7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81c2b961614083107347e10cec155f7a">&#9670;&nbsp;</a></span>mpXorBits()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mpXorBits </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>a</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>b</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>c</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>ndigits</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes bitwise a = b XOR c. </p>

</div>
</div>
<a id="a6e871a43d19b2d7fcd4b757637a214fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e871a43d19b2d7fcd4b757637a214fe">&#9670;&nbsp;</a></span>spDivide()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> spDivide </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> *&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>u</em>[2], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes quotient q = u div v, remainder r = u mod v, where q, r and v are single digits. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#aef30a26e38c65986ce0b058c2fb1990b">mpDivide()</a>, <a class="el" href="bigdigits_8h.html#a82f82f2568c209c8260d732794868fc9">mpShortDiv()</a>, and <a class="el" href="bigdigits_8h.html#a5593505351c9c1938ad52404c8f9a44c">mpVersion()</a>.</p>

</div>
</div>
<a id="a7a9b1982cfec7c15e180dc3de94278dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a9b1982cfec7c15e180dc3de94278dc">&#9670;&nbsp;</a></span>spMultiply()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int spMultiply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>p</em>[2], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Computes p = x * y, where x and y are single digits. </p>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a5593505351c9c1938ad52404c8f9a44c">mpVersion()</a>.</p>

</div>
</div>
<a id="a580b353eb67d03b0a36368511797fa40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a580b353eb67d03b0a36368511797fa40">&#9670;&nbsp;</a></span>spSimpleRand()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a> spSimpleRand </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>lower</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="bigdigits_8h.html#ab56c606f91a4f8d105bbf3bbe0640b6c">DIGIT_T</a>&#160;</td>
          <td class="paramname"><em>upper</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a simple pseudo-random digit between lower and upper. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Not crypto secure. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>spBetterRand() </dd></dl>

<p class="reference">Referenced by <a class="el" href="bigdigits_8h.html#a86b813ec2dcf43e905e1614d2de0f1e9">mpQuickRandBits()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
